LinuC-2 - 201試験 - 2.04:システムの保守と運用管理 - 2.04.2 バックアップとリストア

Last Update : August 21 2022 17:47:14

     

a. バックアップ計画

コンピュータに保存されているデータは、さまざまなハードウェア障害、操作ミス、災害などで簡単に消失してしまいます。
なにも対処しないとデータは復活することができません。データを守るためにはデータのバックアップが必要です。
また、バックアップをシステムにあった形で実行する必要があるため、バックアップ方法・時期・媒体をよく検討する必要があります。

1.バックアップの種類

バックアップには、データの保存方法により、完全バックアップ・差分バックアップ・増分バックアップの3つがあります。

  • 完全バックアップ(フルバックアップ)
    すべてのファイルを対象にバックアップをとります。
    バックアップ時間とバックアップ容量が大きくなります。
  • 差分バックアップ
    前回の完全バックアップ以降に追加または修正されたデータのみをバックアップします。
    フルバックアップ直後はバックアップ容量・バックアップ時間は少なくて済みますが、フルバックアップから時間がたてばたつほどバックアップ容量も時間も大きくなります。
    バックアップからデータを復元するときは、直近のフルバックアップのデータと最後の差分バックアップのデータがあれば、直前の状態に復元できます。
  • 増分バックアップ
    フルバックアップまたは増分バックアップ以降に追加・修正されたデータのみをバックアップします。
    増分バックアップを短期間で定期的に行うと、増分バックアップ時間と容量は少なくて済みます。
    バックアップからデータを復元する場合は、直近のフルバックアップとそれ以降にとった増分バックアップのすべてのバックアップが必要です。
    フルバックアップを復元した後、増分バックアップを取った順番で復元していくことで、直前の状態に復元できます。
2.バックアップするデータの種類

バックアップには、データバックアップとシステムバックアップの2種類があります。
データバックアップとはデータのみをバックアップする方法です。通常、バックアップしておけば、もしもデータが破損、消失した場合でも復旧できますが、データバックアップの場合、災害や障害等でシステムが壊れてしまうとデータの復元に時間がかかります。システムを復旧してからデータの復元になります。
システムバックアップとはコンピュータのシステムごとバックアップする方法です。そのため、災害時でも短い時間帯でシステム・データを復旧することができます。システムの復元とデータの復元を同時に行うことができる。


b. バックアップ対象ディレクトリ

システムが壊れた場合、システム・アプリケーションの再インストール後にどのデータを復元すればシステムを元の状態にできるかを考慮してバックアップを行うデータを決定する。
多くの場合、以下のディレクトリのデータについてはバックアップが最低限必要である。

  • /etc ・・・ 各アプリケーションの設定ファイルが保存されている。
  • /var ・・・ サーバアプリケーションで使用するデータやログが保存されている。
  • /home ・・・ 各ユーザが作成したデータが保存されている。

c. バックアップソリューション

バックアップ及びリカバリーを行うオープンソースのソフトウェアには以下のようなものがある。

【 Amanda 】

Amandaは、1台のバックアップサーバを使用して複数のクライアントデータをストレージ機器に記録することが可能です。
Amandaのバックアップに使うストレージ機器は磁気テープ、ハードディスク、NAS、光学装置など、多くのバックアップデバイスをサポートしている。
Amandaはデータバックアップに適したソフトウェアです。

【 Bacula 】

Bacula(バキュラ)とは、オープンソースのバックアップ&リカバリソリューションです。複数OSが混在する異種ネットワークでのバックアップも可能であるため、エンタープライズレベルの統合的なバックアップシステムを構築できます。
Baculaは、サーバ/クライアントベースのバックアップ機能を提供します。サーバ機能は1台のコンピュータ上で動作し、ネットワーク上のすべてのクライアントデータについてテープやディスクを含むさまざまな種類のストレージデバイスにバックアップできます。
Baculaは「高度なストレージ管理機能」や「紛失/破損ファイルの検索および回復機能」など豊富な機能を備えているにもかかわらず、非常に使い勝手が良い点が特徴です。 バックアップシステムを構成するアーキテクチャ・役割が細分化されており、エンタープライズ向けの設計。
3つのデーモンが独立して動作します。
bacula-dir バキュラ全体の管理役。バックアップジョブ管理も行う
bacula-sd バキュラのバックアップデータ書き込み先のストレージの管理
bacula-fd バキュラのバックアップを実際に実行するクライアント

【 Bareos 】

Bareos Backup Solutionは、次のコンポーネントで構成されています。 Bareos Director –これは、すべてのバックアップ、復元などを管理および監視する中央プログラムです。また、データのバックアップとリカバリをスケジュールします。 Bareos Console – TTYなどのシェルウィンドウを介して、ユーザーとBareosDirector間の対話を可能にします。 Bareos File Daemon –これは、バックアップを実行するために各クライアントにインストールされます。 バックアップするデータを検出し、BareosDirectorからの要求に応じてBareosストレージに送信します。 Bareos Storage Daemon – BareosFileDaemonから送信されたデータを物理バックアップメディア/ボリュームに保存します。 それらのいくつかは単一の環境に存在する可能性があり、すべてが単一のBareosディレクターによって制御されます。 Catalog –これは、バックアップされたすべてのファイルのファイルインデックスとボリュームデータベースを保存する義務のある多数のプログラムで構成されています。

【 BackupPC 】

BackupPCは、Webベースのフロントエンドを備えたディスクツーディスクバックアップソフトウェアです。


d. バックアップメディア

ハードディスク

大容量ハードディスクのバックアップのために、大容量のハードディスクを利用することも一般的になりつつあります。

 ハードディスクの長所
ほかのメディアと比較して、格段に高速なバックアップが可能です。また、テープで起こりがちな湿気や熱などによる劣化がなく、クリーニングも不要です。そのため、メンテナンスコストを低く抑えることが可能です。
 ハードディスクの短所
可搬性の点でほかのメディアに劣ります(注)。また、システム本体とバックアップのためのディスクが同一のサイトに置かれるため、災害によってディスクが損傷した場合、データの回復はできません。また、ウイルスが侵入した場合やユーザーの操作ミスによるファイルの破壊には対応できません。
注:ホットスワップ機能を持ったシステムも出てきています。その場合はディスク交換をしながらバックアップすることも可能です。

光メディア

DVD、CD-R、MOなどがバックアップ用に使われています。

 光メディアの長所
テープよりもメディアがコンパクトです。また、テープよりもメディアの劣化が少ないため、アーカイブとして長期間保存するのに適切です。ランダムアクセスが容易で、バックアップデータの中から一部のファイルを取り出すような作業にも適しています。
 光メディアの短所
メディア1枚当たりの容量が少ないため、テープに比べて容量当たりの単価が高くなります。特に、大容量のシステム全体をバックアップする場合には不向きといえます。また、ディスクの読み取り/書き込みに時間がかかるのも欠点です。

テープデバイス

バックアップ用途に最も利用されてきたメディアがテープです。Linuxをはじめ、UNIX系の環境では、DDS方式のテープを個別に利用する形態が主流でした。各種のテープデバイス仕様は高速/大容量化を続けていて、1メディア当たり非圧縮で100Gbytesを保存できるものも登場しています。

 テープの長所
データ容量が大きく、メディアの容量当たりの単価が安いことが挙げられます。また、可搬性のあるメディアなので、災害時対策のために遠隔地にフルバックアップを保管したり、必要なデータだけをアーカイブとして保管するなど、オフライン管理が必要な用途に最適です。また、ほかのリムーバブルメディアに比べて高速です。世代管理するにも適していて、ファイルサーバなどで「以前削除したデータを復旧させたい」といった要望にも対応しやすくなっています。
 テープの短所
テープデバイスが高価であるため、初期導入コストは高くなります。また、ディスクに比べると低速です。テープの性質上、環境によっては劣化が起こる可能性があり、定期的なクリーニングも必要です。複数のテープを交換しながら利用できるライブラリ装置は機械的に駆動する部分が多く、定期的なメンテナンスが必要になります。

e. バックアップコマンド

1.dd コマンドによるバックアップ

dd コマンドの使い方は至って簡単です。if= にコピー元のHDDを指定し、of= にコピー先のHDDを指定します。HDDをまるごと複製したい場合に重宝します。この手順でHDDを複製した場合、パーティションの切り方なども全く同じ構成のディスクができあがりますので、コピー元とコピー先のHDD 容量は同容量である必要があります(コピー先のほうが容量が大きい場合は、残った領域は空領域となります)。

# dd if=/dev/hda of=/dev/hdb
     コピー元     コピー先

なお、HDDの容量不足などの理由で、より容量の大きいHDDへデータを移動したい場合(パーティションの切り方を、コピー元とコピー先で変更したい場合)などには、dump とrestore などのコマンドが推奨されます。


● dd コマンドオプション
 bs 一度のI/O操作で転送されるデータサイズ(bytes)を指定
 ibs=bytes 一度に指定したバイトのブロックを読み込む。デフォルトは512byte
 obs=bytes 一度に指定したバイトのブロックを書き込む。デフォルトは512byte
 skip=blocks 入力ファイルの先頭から指定したブロックをスキップする
 seek=blocks 出力ファイル中の指定したブロックをスキップする
 count 入力から出力へ指定したブロックをコピーする

ファイルをフロッピーディスクに複製するには、

# dd if=/tmp/fdd.img of=/dev/fd0

フロッピーディスクからHDD にコピーするには、if と of の指定を逆にします。

# dd if=/dev/fd0 of=/tmp/fdd.img

カーネルのコピーをとるには以下のようにします。

# dd if=/boot/vmlinuz of=/dev/fd0

CD-ROMのイメージファイルの作成には以下のようにします。この時、ファイルシステムを通さずにデバイスから直接データを受け取るため、CD-ROMをマウントしている必要はありません。

# dd if=/dev/cdrom of=cdrom.iso

MBR(ディスクの先頭512bytesのデータ)をコピーするには、

# dd if=/dev/hda of=mbr.img bs=512 count=1


2.HDDのデータを完全消去

dd コマンドはイメージの複製以外にも、HDD を完全に消去することもできます。ゼロ(zero)をディスク全体に書き込むことでデータを完全に抹消します。消去の対象となるのは、ディスク全体かパーティション全体になります。プライマリマスターのHDD全体を消去するには下記のコマンドを打ち込みます。

# dd if=/dev/zero of=/dev/hda

より安全にデータを消去したい場合は、以下のように乱数を生成する仮想デバイス/dev/urandom からのランダムデータを2回ほどHDDに書き込み、最後にもう一度/dev/zero でゼロを出力します。

# dd if=/dev/urandom of=/dev/hda
# dd if=/dev/urandom of=/dev/hda
# dd if=/dev/zero of=/dev/hda

3.mt コマンドによるバックアップ

テープデバイスのステータスを表示します。 # mt -f /dev/st0 status


4.rsync コマンドによるバックアップ

● rsync コマンド構文
  rsync [オプション] 同期元 [同期先]

● rsync コマンドオプション
 -a  --archive -rlptgoD と同じ
 -r  --recursive 指定ディレクトリ配下をすべて対象とする
 -l  --links シンボリックリンクをそのままシンボリックリンクとしてコピー
 -p  --perms パーミッションをそのままコピー
 -t  --times タイムスタンプをそのままコピー
 -h  -h シンボリックリンク自体のグループを変更する
 -g  --group グループをそのままコピー
 -o  --owner ファイル所有者をそのままコピー (root のみ有効)
 -D   --devices --specials と同じ
   --devices ブロックデバイスをコピー (root のみ有効)
   --specials 名前付きパイプや FIFO などの特殊ファイルをコピー
 -H  --hard-links ハードリンクをそのまま反映
 -h  --human-readable ファイルサイズのbytesをKやMで出力
 -v  --verbose コピーしたファイル名やバイト数などの転送情報を出力
 -z  --compress データ転送時に圧縮
   --compress-level=NUM NUMがゼロでない場合 --compress オプションが暗黙的に指定される
   --skip-compress=LIST リストファイル(LIST)に書かれたファイルは圧縮しない
 -c  --checksum タイムスタンプとファイルサイズではなくチェックサムで差分を確認
 -u  --update 転送先に既にファイルが存在し、転送先のタイムスタンプの方が新しい場合は転送しない
 -n  --dry-run コピーや転送を実際には行わず転送内容のみ出力
   --delete 転送元に存在しないファイルは削除
   --exclude=PATTERN 指定したパターンにマッチしたファイルは処理しない

#コピー元(hoge1)からコピー先(tege2)へ再帰的にオーナー、グループ、パーミッション、タイムスタンプをそのままコピーする。 $ rsync -a hoge1 tege2 #コピー元(hoge1)とコピー先(tege2)を比較し、追加や更新されたファイル、ディレクトリのみをコピーする。 $ rsync -u hoge1 tege2 #コピーしているファイル名などの情報を表示する。 $ rsync -v hoge1 tege2 #コピー元(hoge1)にないディレクトリやファイルをコピー先(tege2)で削除する。 $ rsync --delete hoge1 tege2

ディレクトリ指定時の注意点  同期元のディレクトリ末尾の「/」を省略した場合は、同期先のディレクトリの“中”に同期元と同じ名前のディレクトリが作成されます。  例えば、「rsync -av mydata/ backup-mydata/」とした場合は、「mydata」の中にあるファイルやディレクトリが「backup-mydata」ディレクトリの中にコピーされます。  これに対し、「rsync -av mydata backup-mydata/」とした場合は、「backup-mydata」の中に「mydata」ディレクトリが作成されることになります。なお、同期先の末尾の「/」の有無は影響しません。


z. 出題範囲概要

概要 :
  • 重要なシステムデータをバックアップするシステムツールを使用できる。
  • Linuxシステムのバックアップ計画を立てられる。

詳細 :
  • バックアップに含める必要があるディレクトリについて決定できる。
  • Amanda、Bacula、Bareos、BackupPCなどのネットワークバックアップソリューションについて知っている。
  • バックアップ対象として、ファイル、ブロック、イメージを使い分けられる。
  • テープ、ハードディスク、光メディアまたはその他のバックアップメディアを選択できる。
    容量、保存期間、ライトワンス、シーケンシャル/ランダムアクセス
  • 完全バックアップ、差分バックアップ、増分バックアップを使い分けられる。
  • バックアップファイルの整合性を確認する。
  • バックアップを部分的または完全に復元する。
    dd, tar, /dev/st*, /dev/nst*, mt, rsync

  [ 例題 ] 


         

    www.it-shikaku.jp